/**
 * 将文本文件a.dat中的素数求和并写入文件的尾部。
 */

#include <math.h>
#include <stdio.h>

// 判断一个数是否是素数
int IsPrime(int num)
{
    if (num == 2 || num == 1)
        return 1;
    for (int i = 2; i <= sqrt(num); i++)
    {
        if (num % i == 0)
        {
            return 0;
        }
    }
    return 1;
}

int main()
{
    FILE *fp = fopen("./a.dat", "a+");
    int sum = 0;
    int num;
    // fscanf()可以依次读入文件的内容，通过"%d"来控制读入的数据是以整数的形式
    while (fscanf(fp, "%d", &num) == 1)
    {
        if (IsPrime(num))
        {
            printf("Prime number : %d\n", num);
            sum += num;
        }
    }
    printf("sum = %d\n", sum);
    fprintf(fp, " %d", sum);
    fclose(fp);
    return 0;
}